package com.manage.function.domain;

import java.time.LocalDateTime;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.manage.common.annotation.Excel;
import com.manage.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

/**
 * 打卡记录对象 function_check_in
 *
 * @author jinghj
 * @date 2025-03-14
 */
@ApiModel(value = "FunctionCheckIn", description = "打卡记录对象 function_check_in 的详细信息")
public class FunctionCheckIn extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /**
     * 打卡记录ID
     *
     */
    @ApiModelProperty(value = "打卡记录ID")
    private Long id;

    /**
     * 用户ID
     *
     */
    @ApiModelProperty(value = "用户ID")
    @Excel(name = "用户ID")
    private Long userId;

    /**
     * 上班打卡时间
     *
     */
    @ApiModelProperty(value = "上班打卡时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "上班打卡时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime checkInTime;

    /**
     * 下班打卡时间
     *
     */
    @ApiModelProperty(value = "下班打卡时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "下班打卡时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime checkEndTime;

    /**
     * 打卡状态
     *
     */
    @ApiModelProperty(value = "打卡状态")
    @Excel(name = "打卡状态")
    private String checkStatus;
    @ApiModelProperty(value = "姓名")
    private String userName;

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    /**
     * 设置 id 的值
     * @param id id 的值
     */
    public void setId(Long id)
    {
        this.id = id;
    }

    /**
     * 获取 id 的值
     * @return id 的值
     */
    public Long getId()
    {
        return id;
    }
    /**
     * 设置 userId 的值
     * @param userId userId 的值
     */
    public void setUserId(Long userId)
    {
        this.userId = userId;
    }

    /**
     * 获取 userId 的值
     * @return userId 的值
     */
    public Long getUserId()
    {
        return userId;
    }
    /**
     * 设置 checkInTime 的值
     * @param checkInTime checkInTime 的值
     */
    public void setCheckInTime(LocalDateTime checkInTime)
    {
        this.checkInTime = checkInTime;
    }

    /**
     * 获取 checkInTime 的值
     * @return checkInTime 的值
     */
    public LocalDateTime getCheckInTime()
    {
        return checkInTime;
    }
    /**
     * 设置 checkEndTime 的值
     * @param checkEndTime checkEndTime 的值
     */
    public void setCheckEndTime(LocalDateTime checkEndTime)
    {
        this.checkEndTime = checkEndTime;
    }

    /**
     * 获取 checkEndTime 的值
     * @return checkEndTime 的值
     */
    public LocalDateTime getCheckEndTime()
    {
        return checkEndTime;
    }
    /**
     * 设置 checkStatus 的值
     * @param checkStatus checkStatus 的值
     */
    public void setCheckStatus(String checkStatus)
    {
        this.checkStatus = checkStatus;
    }

    /**
     * 获取 checkStatus 的值
     * @return checkStatus 的值
     */
    public String getCheckStatus()
    {
        return checkStatus;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())
                .append("userId", getUserId())
                .append("checkInTime", getCheckInTime())
                .append("checkEndTime", getCheckEndTime())
                .append("checkStatus", getCheckStatus())
                .append("userName", getUserName())
                .toString();
    }
}
